﻿Imports ControllerSigeco

Public Class frmImpuesto

    Private Sub frmImpuesto_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        dgImpuesto.AutoGenerateColumns = False
        CargarImpuestos()
    End Sub

    Dim classController As New controller_stock

    Private _idImpuesto As Integer = 0

    Public Property idImpuesto() As Integer
        Get
            Return _idImpuesto
        End Get
        Set(value As Integer)
            _idImpuesto = value
        End Set
    End Property

    Private Sub CargarImpuesto()
        Try
            If idImpuesto > 0 Then

                Dim ds As New DataTable
                ds = classController.get_impuestos(oiml.dbConn, idImpuesto, "")

                If Not ds Is Nothing Then

                    txtImpuesto.Text = ds.Rows(0)("impuesto")
                    txtValor.Text = ds.Rows(0)("valor")
                    btnGrabar.Enabled = True
                    btnEliminar.Enabled = True
                    btnBuscar.Enabled = False

                End If

            Else
                txtImpuesto.Text = ""
                txtValor.Text = ""
                txtImpuesto.Focus()

            End If

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Private Sub CargarImpuestos()
        Try
            idImpuesto = 0
            txtImpuesto.Focus()

            btnBuscar.Enabled = True
            btnNuevo.Enabled = True
            btnEliminar.Enabled = True
            btnGrabar.Enabled = False

            Dim ds As New DataTable
            ds = classController.get_impuestos(oiml.dbConn, 0, txtImpuesto.Text)

            If Not ds Is Nothing Then
                dgImpuesto.DataSource = ds
            Else
                dgImpuesto.DataSource = Nothing
            End If

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Private Sub btnCancelar_Click(sender As System.Object, e As System.EventArgs) Handles btnCancelar.Click
        Me.Close()

    End Sub

    Private Sub btnEliminar_Click(sender As System.Object, e As System.EventArgs) Handles btnEliminar.Click

        If idImpuesto > 0 Then
            If MessageBox.Show("Desea eliminar el registro seleccionado?", "Impuestos", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                If classController.Delete_impuesto(oiml.dbConn, idImpuesto) Then
                    txtImpuesto.Text = ""
                    txtValor.Text = ""
                    CargarImpuestos()

                Else
                    MessageBox.Show("Error: " & classController.MessageError.Message, "Impuestos", MessageBoxButtons.OK, MessageBoxIcon.Error)

                End If

            End If

        End If

    End Sub

    Private Function ValidarCampos() As Boolean

        Dim controlCampos As Boolean = False

        If txtImpuesto.Text = "" Then
            ErrorProvider1.SetError(txtImpuesto, "Campo obligatorio")
            controlCampos = True
        Else
            ErrorProvider1.SetError(txtImpuesto, "")
        End If        '

        If txtValor.Text = "" Or Not IsNumeric(txtValor.Text) Then
            ErrorProvider1.SetError(txtValor, "Campo obligatorio")
            controlCampos = True
        Else
            ErrorProvider1.SetError(txtValor, "")
        End If        '

        Return controlCampos

    End Function

    Private Sub btnGrabar_Click(sender As System.Object, e As System.EventArgs) Handles btnGrabar.Click

        If ValidarCampos() Then
            Exit Sub
        End If

        If idImpuesto = 0 Then
            idImpuesto = classController.Insert_impuesto(oiml.dbConn, txtImpuesto.Text, txtValor.Text)
            If idImpuesto > 0 Then
                txtImpuesto.Text = ""
                txtValor.Text = ""
                CargarImpuestos()
                MessageBox.Show("Registro grabado con exito!", "Impuestos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

            Else
                MessageBox.Show("Error: " & classController.MessageError.Message, "Impuestos", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End If

        Else
            If classController.Update_impuesto(oiml.dbConn, idImpuesto, txtImpuesto.Text, txtValor.Text) Then
                txtImpuesto.Text = ""
                CargarImpuestos()
                MessageBox.Show("Registro grabado con exito!", "Impuestos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)


            Else
                MessageBox.Show("Error: " & classController.MessageError.Message, "Impuestos", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End If

        End If

    End Sub

    Private Sub editar()
        Try

            If dgImpuesto.SelectedRows.Count > 0 Then

                idImpuesto = dgImpuesto.SelectedRows(0).Cells(0).Value
                CargarImpuesto()

            End If
        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub btnNuevo_Click(sender As System.Object, e As System.EventArgs) Handles btnNuevo.Click
        btnEliminar.Enabled = False
        btnNuevo.Enabled = False
        btnBuscar.Enabled = False
        btnGrabar.Enabled = True

        idImpuesto = 0
        txtImpuesto.Text = ""
        txtValor.Text = ""
        txtImpuesto.Focus()

    End Sub

    Private Sub btnBuscar_Click(sender As System.Object, e As System.EventArgs) Handles btnBuscar.Click
        CargarImpuestos()

    End Sub

    Private Sub dgImpuesto_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgImpuesto.KeyDown
        If e.KeyCode = Keys.Enter Then
            editar()
        End If
    End Sub

    Private Sub dgImpuesto_DoubleClick(sender As System.Object, e As System.EventArgs) Handles dgImpuesto.DoubleClick
        editar()
    End Sub

    Private Sub txtImpuesto_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtImpuesto.KeyDown
        If e.KeyCode = Keys.Enter Then
            CargarImpuestos()
        End If
    End Sub

    Private Sub dgImpuesto_CellClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgImpuesto.CellClick
        Try

            If dgImpuesto.SelectedRows.Count > 0 Then

                idImpuesto = dgImpuesto.SelectedRows(0).Cells(0).Value


            End If
        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

End Class